package fr.afcepf.atod21.implementations;

import fr.afcepf.atod21.interfaces.IGestionStockService;
import fr.afcepf.atod21.ws.gestionstock.DaoProduitService;
import fr.afcepf.atod21.ws.gestionstock.EtatproduitStock;
import fr.afcepf.atod21.ws.gestionstock.IDaoProduit;
import fr.afcepf.atod21.ws.gestionstock.ProduitStock;
import fr.afcepf.atod21.ws.gestionstock.ProduitStockDTO;


public class GestionStockProduit implements IGestionStockService {
	IDaoProduit dao = new DaoProduitService().getDaoProduitPort(); 
	
	@Override
	public ProduitStockDTO updateProduit(int idProduitMIU, int qtt) {
		ProduitStockDTO pdtStockDTO = new ProduitStockDTO();
		
		
		pdtStockDTO = dao.rechercheProduitParId(idProduitMIU);
		
		pdtStockDTO = dao.misAJourProduit(pdtStockDTO, qtt);
		
		setEtatCommandeProduitSelonQuantiteAjoute(pdtStockDTO);

//		EtatproduitStock etatpdt = new EtatproduitStock();
//		etatpdt.setIdetatcommande(1);
//		if(pdtStockDTO.getStockproduit() < 150){
//			pdtStockDTO = dao.miseAJourEtatProduit(pdtStockDTO, etatpdt);
//		}
		
		
		return pdtStockDTO;
	}

	public void setEtatCommandeProduitSelonQuantiteAjoute(ProduitStockDTO produitStockDTO) {
		EtatproduitStock etatpdt = new EtatproduitStock();
		if(produitStockDTO.getStockproduit() < 150){
			etatpdt.setIdetatcommande(1);
			produitStockDTO = dao.miseAJourEtatProduit(produitStockDTO, etatpdt);
		}		
	}
	
	@Override
	public ProduitStockDTO ajoutProduit(ProduitStockDTO produit) {
	
//		IDaoProduit dao = new DaoProduitService().getDaoProduitPort(); 
		dao.ajoutProduitDansBase(produit);
		setEtatCommandeProduitSelonQuantiteAjoute(produit);
		return produit;
		
	}

	@Override
	public ProduitStockDTO recupererProduit(int id) {
		return dao.rechercheProduitParId(id);
		 
	}

	@Override
	public ProduitStockDTO miseAJourEtatProduit(
			ProduitStockDTO produitAMettreAJour,
			EtatproduitStock etatDuProduitAMettreAJour) {
		IDaoProduit dao1 = new DaoProduitService().getDaoProduitPort(); 
		return dao1.miseAJourEtatProduit(produitAMettreAJour, etatDuProduitAMettreAJour);
	}

	@Override
	public ProduitStockDTO ajoutQtePdt(ProduitStockDTO pdtStock, int qtt_Produit) {
		
		return dao.ajoutQtePdt(pdtStock, qtt_Produit);
	}
}
